package com.xc.hotelmgr.webapi.modules.redis.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xc.hotelmgr.webapi.modules.redis.dto.StoreRPUseAddPrice;

import java.util.List;

public interface RPRedisService extends IService<StoreRPUseAddPrice> {
    /**
     * 存储店铺下价格政策适用的加价配置
     * hash，key为：1_store_rp_use_add_price+[appkey]
     * field为[rpcode]值：【1,2,3】+加价配置ID
     * 1为酒店加价，2为自定义加价,多个自定义价格政策用逗号分隔、3为通用加价
     * @param storeId
     * @param appKey
     * @param hotelId
     */
    void storeRpSaveUseAddPriceCfg(Integer storeId,String appKey,Long hotelId);


    /**
     * 删除店铺下已经失效的价格政策的加价配置
     *      * hash，key为：1_store_rp_use_add_price+[appkey]
     *      * field为[rpcode]值：【1,2,3】+加价配置ID
     *      * 1为酒店加价，2为自定义加价,多个自定义价格政策用逗号分隔、3为通用加价
     * @param appKey
     * @param rpList
     */
    void delStoreRpSaveUseAddPriceCfg(String appKey, List<Long> rpList );


    /**
     * 存储店铺下指定酒店使用的自定义价格政策
     * hash，key为：1_store_rp_use_ourplan+[appkey]
     * filed为酒店ID
     * @param storeId
     * @param appKey
     * @param hotelId
     */
    void storeHtlSaveOurPlan(Integer storeId, String appKey, Long hotelId);

    /**
     * 存储rp所属的店铺、酒店、房型
     * hash，key为 1_rp_blong_htl_room
     * filed，为rpcode
     * 值为：hotelCode,roomcode
     * @param hotelId
     */
    void rpStoreHtlRoomSave(Long hotelId);

    /**
     * 删除无效rp所属的店铺、酒店、房型信息
     * hash，key为 1_rp_blong_htl_room
     * filed，为rpcode
     * @param rpList
     */
    void delRpStoreHtlRoomSave(List<Long> rpList);

    /**
     * 存储酒店下价格政策每日价态
     * hash，key为：r+[rpcode]MMdd
     * field：p：price，n：sale_num
     * @param hotelId
     */
    void rpsSave(Long hotelId);


    /**
     * 删除数据库中的物理房型
     * @param hotelId
     */
    void deleteDbRoomByHotelId(Long hotelId);

    /**
     * 删除数据库中的RP
     * @param hotelId
     */
    void deleteDbRpByHotelId(Long hotelId);

    /**
     * 删除数据库中的rps
     * @param hotelId
     */
    void deleteDbRPSByHotelId(Long hotelId);

    /**
     * 删除数据库中无效的rps
     * @param rpList
     */
    void deleteDbRPByIds(List<Long> rpList);
}
